Screenshot of QEMU/KVM running NetBSD, OpenSolaris and Kubuntu on an Arch Linux host. |
|
Developer(s) | Red Hat, Inc. |
---|---|
Stable release | 15 / June 15, 2011 |
Written in | C |
Operating system | Linux kernel |
Type | Platform virtualization |
License | GNU General Public License or GNU Lesser General Public License |
Website | www.linux-kvm.org (unofficial) |
Kernel-based Virtual Machine (KVM) is a virtualization infrastructure for the Linux kernel. KVM supports native virtualization on processors with hardware virtualization extensions.[1]
KVM originally supported x86 and x86-64 processors and has been ported to S/390,[2] PowerPC,[3] and IA-64. An ARM port is in progress.[4]
A wide variety of guest operating systems work with KVM, including many flavours of Linux, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, and AROS Research Operating System.[5] A modified version of QEMU can use KVM to run Mac OS X.[6]
Limited paravirtualization support is available for Linux and Windows guests using the VirtIO framework. This supports a paravirtual Ethernet card, a paravirtual disk I/O controller, a balloon device for adjusting guest memory usage, and a VGA graphics interface using SPICE or VMware drivers.
KVM uses SeaBIOS.
Linux 2.6.20 (released February 2007) was the first to include KVM.[7]
KVM has also been ported to FreeBSD and Illumos as a loadable kernel module.[8][9]
Contents |
By itself, KVM does not perform any emulation. Instead, a user space program uses the /dev/kvm interface to set up the guest VM's address space, feeds it simulated I/O and maps its video display back onto the host's. QEMU versions 0.10.1 and later make use of this.
KVM's parts are licensed under various GNU licenses:[10]
Qumranet, a technology startup company, began the development of KVM.[11] Red Hat bought Qumranet in 2008.[12] KVM is maintained by Avi Kivity and Marcelo Tosatti.
Class | Device |
---|---|
Video card | Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions[13] |
PCI | i440FX host PCI bridge and PIIX3 PCI to ISA bridge[13] |
Input device | PS/2 Mouse and Keyboard[13] |
Sound card | Sound Blaster 16, ENSONIQ AudioPCI ES1370, Gravis Ultrasound GF1, CS4231A compatible[13] |
Ethernet Network card | AMD Am79C970A (Am7990), E1000 (Intel 82540EM, 82573L, 82544GC), NE2000, and Realtek RTL8139 |
Watchdog timer | Intel 6300ESB or IB700 |
RAM | 50 MB - 32 TB |
CPU | 1-16 CPUs |